// import { delete } from "vue/types/umd"

const state = {
  // 定义加入购物车的数据结构
  items: []

}
const actions = {
  // 定义add方法
  add(context, item) {
    context.commit('add', item)
  },
  // 定义del方法
  del(context, item) {
    context.commit('del', item)
  }
}
const mutations = {
  // 定义同步add方法
  add(state, item) {
    // 判断购物车中是否存在产品了？
    const existedItem = state.items.find(v => {
      return v.id === item.id
    })
    // 判断
    if(existedItem) {
      ++existedItem.num;
    }else {
      state.items.push({
        id: item.id,
        title: item.title,
        price: item.price,
        src: item.src,
        num: 1
      })
    }
    console.log(state.items)
  },
  del(state, item) {
    state.items.forEach(
      (it, index, arr) => {
        if(it.id === item.id) {
          arr.splice(index, 1)
        }
      }
    )
  }

}
const getters = {
  // 添加方法，计算总价
  totalPrice: (state => {
    return state.items.reduce((total, item) => {
      return total + item.num * item.price
    }, 0).toFixed(2);
  })
}
export default {
  namespaced: true,
  state,
  actions,
  mutations,
  getters
}